package org.type4neo.imp;

import org.neo4j.graphdb.PropertyContainer;

public class TypedPrimitiveImp implements TypedPropertyContainer {
	protected PropertyContainer pc;
	
	public TypedPrimitiveImp() {
	}
	
	public boolean hasProperty(String key) {
		return this.pc.hasProperty(key);
	}

	public Object getProperty(String key) {
//		System.out.println("Getting property: " + key + " on: [" + this.pc.getClass().getName() + "@" + this.pc.hashCode() + "]");
		return this.pc.getProperty(key);
	}

	public Object getProperty(String key, Object defaultValue) {
//		System.out.println("Getting property: " + key + " on: [" + this.pc.getClass().getName() + "@" + this.pc.hashCode() + "]");
		return this.pc.getProperty(key, defaultValue);
	}

	public void setProperty(String key, Object value) {
//		System.out.println("Setting property: " + key + " with val " + value + " on: [" + this.pc.getClass().getName() + "@" + this.pc.hashCode() + "]");
		this.pc.setProperty(key, value);
	}

	public Object removeProperty(String key) {
		return this.pc.removeProperty(key);
	}

	public Iterable<String> getPropertyKeys() {
		return this.pc.getPropertyKeys();
	}

	@Deprecated
	public Iterable<Object> getPropertyValues() {
		return this.pc.getPropertyValues();
	}

	public void setPropertyContainer(PropertyContainer propertyContainer) {
		this.pc = propertyContainer;
	}
}
